/*
 * sparse_band.h
 *
 *  Created on: Jun 19, 2013
 *      Author: tifuera
 */

#ifndef SPARSE_BAND_H_
#define SPARSE_BAND_H_

typedef struct
{
	int order; //order of the matrix
	int block_size; //block size
	int half_bandwith; //half of bandwith
	double** gpu_matrix_tiles; //array of pointers to GPU memory space where matrix is stored
	int* tile_len; //length of tiles
} gpu_symm_band_matrix;

//Calculates number of elements in band matrix
int get_band_num_elements(int order, int half_bandwith);

//TODO test this method
int get_index(int i, int j, int half_bandwith, int order);

void print_band_matrix(int order, int half_bandwith, double * matrix);

#endif /* SPARSE_BAND_H_ */
